草庐IT

Java Raw Type 和泛型交互

全部标签

java - 在类中实现时保留泛型

我对一般类型的问题进行了大量搜索,但没有找到任何可以帮助我弄清楚我在这里做错了什么的东西。我的界面如下:publicinterfaceSortAnalysis>{publiclonganalyzeSort(ArrayListlist);}现在,下一步是创建一个实现此接口(interface)的类。这个特定的类将使用插入排序,我需要保持ArrayList类型“E”的通用性,所以我尝试了各种方法并最终得到以下结果:publicclassInsertionSort>implementsSortAnalysis{@OverridepubliclonganalyzeSort(ArrayListl

java - 如何从实现类中获取泛型接口(interface)的类型参数?

我有这个界面:publicinterfaceEventHandler{voidhandle(Tevent);}这个类实现它:publicclassMyEventHandlerimplementsEventHandler{@Overridepublicvoidhandle(MyEventevent){//dosomething}}本例中,T参数为MyEvent,即Event的具体实现。如何使用反射获得这个? 最佳答案 解析T的类型通过通用接口(interface)。例如publicinterfaceSomeInterface{}pub

Java 泛型枚举子类型化接口(interface)

给定以下设置:publicclassTestType{publicstaticvoidmain(String[]args){Listlist=newArrayList();accept(list);//Doesnotcompile}staticvoidaccept(Iterablevalues){for(MyInterfacevalue:values){value.doStuff();}}}interfaceMyInterface{TdoStuff();}enumConstantsimplementsMyInterface{ONE,TWO,THREE;@OverridepublicIn

java - JavaPoet 的泛型类

嘿,我正在尝试生成这样的类:publicabstractclassResourceListAdapterextendsRecyclerView.Adapter{}目前我可以生成:publicabstractclassResourceListAdapterextendsRecyclerView.Adapter{}使用以下代码:TypeSpectype=TypeSpec.classBuilder(thisClass).superclass(ParameterizedTypeName.get(adapterClassName,WildcardTypeName.subtypeOf(Object

java - 在也实现相同类的基类中使用泛型的好处

我最近在我未编写的代码中遇到过这种情况,虽然这种方法可能有一些设计上的好处,但我似乎无法从自己的大脑中挤出这种基本原理。所以在我看起来很愚蠢之前,我希望能在这里得到一些反馈。服务接口(interface)是这样的:publicinterfaceService{...}然后,一个基类添加了对Service接口(interface)的通用引用,其中T扩展了Service,但随后整个基类也实现了该接口(interface)。像这样:publicclassServiceBaseimplementsService{...}你为什么要这样做?我注意到在实践中,ServiceBase的扩展总是使用与

java - 泛型 - 编译器不一致 [jdk 1.8.0_162]

我遇到了泛型问题,这让我对编译器实际如何处理泛型类型感到困惑。请考虑以下事项://simpleinterfacetomakeitaMCVEstaticinterfaceA{publicFgetF();publicSgetS();}staticComparator>wrap(Comparatorc){return(L,R)->c.compare(L.getS(),R.getS());}以下将无法编译,因为在调用thenComparing时,两种泛型类型都被简化为Object:Comparator>c=wrap((L,R)->Integer.compare(L,R)).thenCompar

java - Hibernate 如何在@OneToMany 映射中找到集合的泛型类型?

给定一个简单的实体关系:@EntitypublicclassSingle{@OneToManypublicSetmultiples;}Hibernate如何发现倍数的泛型类型是Multiple?使用标准反射API无法找到此信息。我正在查看源代码,但真的不知道从哪里开始。 最佳答案 但是可以使用反射API找出答案。看看Field.getGenericType():Typetype=field.getGenericType();if(typeinstanceofParameterizedType){Type[]genericArgume

Java 泛型 'Incompatible Type' 编译时错误

对于CS类(class),我正在编写由我的教授创建的链表接口(interface)的链表实现。该作业要求我们对列表使用泛型。我认为,我创建的内容非常标准。publicclassMyLinkedListimplementsADTListInterface{...privateclassNode{Nodehead;Nodeprev;publicNode(intmax){...}publicvoidshift(){...NodenewNode=newNode(this.max);newNode.prev=head.prev;...}}...}在编译时会产生以下错误:MyLinkedList.

java - 泛型问题和数组

抱歉,我想不出更简洁的标题。我的问题是为什么下面的代码有效:publicabstractclassTObjectPool{protectedObject[]availableObjects;TObjectPool(intsize){availableObjects=newObject[size];}protectedclassRenderElementPoolextendsTObjectPool{@Overridepublicvoidfill(){for(inti=0;i当这样使Object数组成为泛型不起作用时:publicabstractclassTObjectPool{prote

c# - 什么时候应该封装泛型类型?

我看到很多人建议您应该使用更接近您领域的类来封装泛型类型,例如Steve和Nat在GrowingObject-OrientedSoftware,GuidedbyTests中建议那:Ourruleofthumbisthatwetrytolimitpassingaroundtypeswithgenerics[...].Particularlywhenappliedtocollections,weviewitasaformofduplication.It’sahintthatthere’sadomainconceptthatshouldbeextractedintoatype.一般来说,什么